package com.sitech.portal.system.dao;

import java.util.HashMap;
import java.util.List;

import com.sitech.ibnms.core.IPage;
import com.sitech.ibnms.core.PageForm;
import com.sitech.portal.system.domain.TblSYS_WORKGROUP;


public interface ISysWorkGroupDao {
	
	public TblSYS_WORKGROUP findWorkGroupById(String id);

	public void insertWorkGroup(TblSYS_WORKGROUP wp);
	
	public void updateWorkGroup(TblSYS_WORKGROUP wp);
	
	public void deleteWorkGroup(String id);
	
	/**
	 * 所有工作组列表
	 * @return
	 */
	public List<HashMap> findAllWorkGroup();
	
	/**
	 * 获取下级工作组列表
	 * @param parentId
	 * @return
	 */
	public List<HashMap> findWorkGroupByParentId(String parentId);
	
	/**
	 * 获取该用户能处理的下级工作组
	 * @param parentId
	 * @param userId
	 * @return
	 */
	public List<HashMap> findWorkGroupByParentIdUser(String parentId,String userId);
	
	/**
	 * 获取工作组的人员
	 * @param workGroup_id
	 * @return
	 */
	public IPage finedUsersOfWorkGroup(String workGroup_id, PageForm pageForm);
	
	public List findUserOfWorkGroup(String login_id ,String workGroup_id);
	
	public List findUserOfWorkGroup(String workGroup_id);
	
	/**
	 * 获取某人的所有工作组
	 * @param login_id
	 * @return
	 */
	public List findWorkGroupOfUser(String login_id);
	
	/**
	 * 将用户加入工作组
	 * @param login_id
	 * @param workGroupId
	 */
	public void insertUserToWorkGroup(String login_id,String workGroupId);
	/**
	 * 将用户从工作组移除
	 * @param login_id
	 * @param workGroupId
	 */
	public void deleteUserFromWorkGroup(String login_id,String workGroupId);
	/**
	 * 清空工作组的用户
	 * @param workGroupId
	 */
	public void deleteAllUserFromWorkGroup(String workGroupId);

    public void deleteWorkGroupByUser(String id);

}
